<?php 
    header("Content-type: text/html; charset=utf-8");
    require_once('auth_i.inc.php');
    require_once('backup.inc.php');

    $info = TRUE;

    if (!empty($_FILES) && ($_FILES['file']['error'] == 0) && (is_uploaded_file($_FILES['file']['tmp_name'])))
    {
        $info = save_backup_file($_FILES['file']['tmp_name']);
    }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/themes/redmond/jquery-ui-1.8.9.custom.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/ui.multiselect.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/asud.css" />

    <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="js/i18n/grid.locale-ru.js" type="text/javascript"></script>
    <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui-1.8.9.custom.min.js" type="text/javascript"></script>

<script type="text/javascript">

var backup_path="<?php echo $path ?>";
var site_backup_path="<?php echo $site_path ?>";

$(function() { 
  $("#list").jqGrid({
    url:'req/bck_list.php',
    editurl:'req/bck_edit.php', 
    datatype: 'json',
    width: 500,
    mtype: 'GET',
    height: 190,
    colNames:['Имя архива','Размер', 'Дата'],
    colModel :[ 
      {name:'name', index:'name', editable: false }, 
      {name:'size', index:'size', width:50, editable: false }, 
      {name:'date', index:'date', width:100, editable: false }, 
    ],
    sortname: 'name',
    sortorder: 'desc',
    viewrecords: true,
  });

$("#backup-button" )
    .button()
    .click(function() {

    if(confirm('Выполнить архивацию данных ?'))
    {
        $.post('dumper.php?action=backup', {db_backup:'asud', comp_method:1, comp_level:9}, function(data)
          {
            var patt = /<SCRIPT>l\('Резервная копия БД \`asud\` создана.', 2\);<\/SCRIPT>/g;

            var res = patt.test(data);

            if (res)
            {
                alert('Резервная копия базы АСУД создана !');

                $('#list').trigger("reloadGrid");
            }
            else
            {
                alert('При создании резервная копия базы АСУД произошла ошибка !');
            }
         });
    }
});

$("#restore-button" )
    .button()
    .click(function() {

    var gr = $("#list").getGridParam('selrow'); 

    if( gr != null ) 
    {
        var data = $("#list").getRowData(gr);    
    }
    else 
    {
        alert("Выбирите файл для востановления !"); 
        return;
    }

    if(confirm('Выполнить восстановление данных ?'))
    {
        $.post('dumper.php?action=restore', {db_restore:'asud', file: data.name, data_filter:1 }, function(data)
          {
            var patt = /<SCRIPT>l\('БД восстановлена из резервной копии.', 2\);<\/SCRIPT>/g;

            var res = patt.test(data);

            if (res)
            {
                alert('База АСУД восстановлена !');

                $('#list').trigger("reloadGrid");
            }
            else
            {
                alert('При восстановлении копия базы АСУД произошла ошибка !');
            }
         });
    }
});

$("#del-button" )
    .button()
    .click(function() {

       var gr = $("#list").getGridParam('selrow'); 

        if( gr != null ) 
        {
            $("#list").jqGrid('delGridRow',gr,{reloadAfterSubmit:true}); 
        }
        else 
        {
            alert("Выбирите файл для удаление !"); 
            return;
        }
    });

$("#upload-form" ).dialog({
            autoOpen: false,
            height: 160,
            width: 413,
            modal: true,
            resizable: false,

            buttons: {
                "Ok": function() {
                    var bValid = true;

                    $('#post-form').submit();

                },
                Cancel: function() {
                    $( this ).dialog( "close" );
                }
            },
    });    

$("#upload-button" )
    .button()
    .click(function() {
        $("#upload-form" ).dialog('open');
    });

$("#download-button" )
    .button()
    .click(function() {
        if (confirm('Выгрузить архив ?'))            
        {
            var gr = $("#list").getGridParam('selrow'); 

            if( gr != null ) 
            {
                location.href = site_backup_path + "/" + gr;
            }
            else 
            {
                alert("Выбирите файл для скачивания !"); 
                return;
            }
        }
    });

<?php
    if ($info === FALSE)
    {
        echo ('alert("Неправильный формат файла ! \nВозможно неверная версия архива !");');
    }
?>

});
</script>

</head>
<body>
<?php // menu bar
    require_once('menu.inc.php');

    print menu($menu_items, 'backup.php');
?>

<div id="upload-form" title="Загрузить новый файл архива">
    <form id="post-form" enctype="multipart/form-data" action="backup.php" method="post" class="FormGrid">
        <table id = "FormTable">
            <tr id="FormRow">
                <td id="FormTD">    
                    <label for="file">Файл архива:</label>
                </td>
                <td id="FormTD">   
                    <input type="file" name="file" id="file" value="" class="FormElement ui-widget-content ui-corner-all"/>    
                </td>    
            </tr>    
        </table>            
    </form>
</div>



<div id="main-box">
    <table id="list"></table> 
    <div id="button-box">   
        <button id="backup-button">Архивировать</button>
        <button id="restore-button">Восстановить</button>
        <button id="del-button">Удалить архив</button>
        <button id="upload-button">Загрузить архив</button>
        <button id="download-button">Выгрузить архив</button>

    </div>
</div>
<div id="warning">
<h1>ВНИМАНИЕ !</h1>
<p>При восстановление и архивации следует помнить:</p>
<p>1. Данные можно архивировать не чаще чем раз в минуту.</p>
<p>2. При восстановление все внесенные вами изменения с даты архивирования теряются.</p>
<p>3. Полномочия, пользователи и текущие сессии не не восстанавливаются.</p>
</div>

</body>
</html>
